<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

</body>
<script>
    /*
      如果调用 then的 Promise 的状态发生改变，
      但是 then 中并没有关于这种状态的回调函数，
      那么 then 将创建一个没有经过回调函数处理的新 Promise 对象，
      这个新 Promise 只是简单地接受调用这个 then 的原 Promise 的终态作为它的终态
    */
    new Promise((resolve, reject)=>{
        setTimeout((flag)=>{
            //flag: 第一次请求成功与否
            if(flag){
                resolve(flag);
                console.log("第一次请求成功")
            }else{
                reject("第一次请求失败")
            }
        },1000,false)
    }).then((flag)=>{
        return new Promise((resolve,reject)=>{
            //flag: 第一次请求成功与否
            if(flag){
              setTimeout((flag)=>{
               //flag: 第二次请求成功与否
                if(flag){
                    resolve(flag);
                    console.log("第二次请求成功")
                }else{
                    reject("第二次请求失败")
                }
              },1000,true)
            }else{
                reject("第一次请求失败")
            }
        })
    }).then((flag)=>{
        return new Promise((resolve,reject)=>{
            //flag: 第二次请求成功与否
            if(flag){
                setTimeout((flag)=>{
                    //flag: 第三次请求成功与否
                    if(flag){
                        resolve(flag);
                        console.log("第三次请求成功")
                    }else{
                        reject("第三次请求失败")
                    }
                },1000,true)
            }else{
                reject("第二次请求失败")
            }
        })
    }).catch((error)=>{
        console.log(error,"-----");
    })
</script>
</html>